home *** CD-ROM | disk | FTP | other *** search
-
- I B M P C B I O S S e r v i c e R o u t i n e s
-
- Adapted from IBM Technical Reference Release 11/08/82
- by Roy Smith
- ----------------------------------------------------------------------------
- Vector Interrupt BIOS Entry
- Address Number Name label
- ----------------------------------------------------------------------------
- 00-03 0 Divide by Zero D11
- 04-07 1 Single Step D11
- 08-0B 2 Nonmaskable NMI_INT
- 0C-0F 3 Breakpoint D11
- 10-13 4 Overflow D11
- 14-17 5 Print Screen & PRINT_SCREEN
- 18-1B 6 Reserved D11
- 1C-1F 7 Reserved D11
-
- ---- Hardware Service Rutines ---------------------------------------------
- 20-23 8 Time of Day Service TIMER_INT
- 24-27 9 Keyboard Service KB_INT
- 28-2B A Reserved D11
- 2C-2F B Communications Service COM2: D11
- 30-33 C Communications Service COM1: D11
- 34-37 D Disk Service D11
- 38-3B E Diskette Service DISK_INT
- 3C-3F F Printer Service D11
- ----------------------------------------------------------------------------
-
- 40-43 10 Video I/O VIDEO_IO
- 44-47 11 Equipment Check EQUIPMENT
- 48-4B 12 Memory MEMORY_SIZE_DETERMINE
- 4C-4F 13 Diskette/Disk IO DISKETTE_IO
- 50-53 14 Communications RS232_IO
- 54-57 15 Cassette CASSETTE_IO
- 58-5B 16 Keyboard I/O KEYBOARD_IO
- 5C-5F 17 Printer PRINTER_IO
- 60-63 18 Resident BASIC F600:0000
- 64-67 19 Bootstrap BOOT_STRAP
- 68-6B 1A Time of Day TIME_OF_DAY
- 6C-6F 1B Keyboard Break DUMMY_RETURN
- 70-73 1C Timer Tick (18.2 per second) DUMMY_RETURN
- 74-77 1D Video Initialization VIDEO_PARMS
- 78-7B 1E Diskette Operating Parameter DISK_BASE
- 7C-7F 1F Video Graphics Characters 0
- ^L
- +-------------------------------------------------------------------------+
- | I B M P C B I O S I n t e r f a c e R o u t i n e s |
- +--------------------------------------------------------------------------+
- Intr Func In Out Comments
- # (AH) Regs Regs
-
- 10 --------------- Video I/O ---------------------------------------------
- --- 0 Set CRT Mode
- AL 0=40 x 25 Black & white 1= 40 x 25 Color
- 2=80 x 25 Black & white 3= 80 x 25 Color
- 4=320 x 200 Medium resolution color
- 5=320 x 200 Medium resolution black & white
- 6=640 x 200 High reslution black & white
- --- 1 Set Cursor Type
- CH Start scan line (0-7 C/G, 0-14 Mono)
- CL End scan line (set start to 20H for no curs.)
- --- 2 Set Cursor Position
- DH,DL Row, column (0,0 = Home)
- BH Video page
- --- 3 Read Cursor Position
- BH Video page
- DH,DL Row, column (0,0 = Home)
- --- 4 Read Light Pen
- AH 0=Light pen not trig, 1=valid info in regs:
- DH,DL Row, column of character LP position
- CH Raster line
- BX Pixel column (0-319 med-res,0-619 hi-res)
- --- 5 Select Active Page
- AL New page (0-7 for 4x25,0-3 for 80x25)
- --- 6 Scroll Active Page Up
- --- 7 Scroll Active Page Down
- AL Nuber of lines to scroll (0 if entire screen)
- CH,CL Row, column of upper left corner
- DH,DL Row, column of lower right corner
- BH Attribute to use in blanked lines
- --- 8 Read Attribute / Character at current cursor position
- BH Video page
- AL Character read
- AH Attribute of char (alpha modes only)
- --- 9 Write Attribute / Character at current cursor position
- BH Video page
- CX Count of characters to write
- AL Character to write
- BL Attribute to write
- --- A Write Character only at current cursor position
- BH Video page
- CX Count of characters to write
- AL Character to write
- --- B Set Color Palette
- BH Palette color ID being set
- BL Color value to be used with that color ID
- --- C Write Dot
- DX,CX Row, column nmber
- AL Color value (If bit 7=1, value is OR'ed in)
- --- D Read Dot
- DX,CX Row, column number
- AL Dot read
- --- E Write Teletype to Active Page
- AL Character to write
- BL Foreground color in graphics mode
- --- F Get Current Video State
- AL Mode currently set (see func. 0)
- AH Columns on screen
- ^L
- +--------------------------------------------------------------------------+
- | I B M P C B I O S I n t e r f a c e R o u t i n e s |
- +--------------------------------------------------------------------------+
- Intr Func In Out Comments
- # (AH) Regs Regs
-
- 11 ------------------------------------------------+
- Intr Func In Out Comments
- # (AH) Regs Regs
-
- 11 --------------- Equipment ---------------------------------------------
- None
- AX Equipment attached : Bits set as follows
- A H A L
- 0 0 X 0 0 0 0 X 0 0 0 0 0 0 X 0
- --- - ----- --- --- --- -
- 1 2 3 4 5 6 7
-
- 1 Number of printer
- 2 Game I/O
- 3 RS232 cards
- 4 Drives
- 5 Initial video mode
- 6 System board RAM
- 7 IPL from diskette
-
- 12 -------------- Memory Size ---------------------------------------------
- None
- AX Number of bytes in Kbytes
-
- 13 ------------- Diskette I/O ---------------------------------------------
- --- 0 Reset Diskette System
- None None Hard reses all diskette drives, recal req'd
- --- 1 Read Diskette Status
- AL Status byte : Bits set as follows
- 80 Attachment failed to respond
- 40 Seek operation failed
- 20 NEC controller failure
- 10 Bad CRC on diskette read
- 09 Attempt to DMA across a 64k bound
- 08 DMA overrun on operation
- 04 DMA overrun on operation
- 03 Write attempted on wrt prot disk
- 02 Address mark not found
- 01 Bad command passed to diskete I/O
-
- --- 2 Read the desired sectors into memory
- --- 3 Write the desired sectors from memory
- --- 4 Verify te desired sectors
- --- 5 Format the desired track
-
- DL Drive number (0-3)
- DH Head number
- CH Track number
- CL Secto number
- AL Number of sectors (not used for format)
- ES:BX Addrsss of buffer (not used for verify)
-
- AH Status of operation (see above)
- CY 1 if failed, 0 if ok
- ^L
- +--------------------------------------------------------------------------+
- | I B M P C B I O S I n t e r f a c e R o u t i n e s |
- +--------------------------------------------------------------------------+
- Intr Func In Out Comments
- # (AH) Regs Regs
-
- 14 ------------ RS-232 I/O -----------------------------------------------
- --- 0 Initialize Communications Port
- DX Interface card (0=COM1:, 1=COM2:)
- AL Parameters to set up : Bit are as follows
- A L
- 0 0 0 0 0 0 0 0
- --- - --- -----
- 1 2 3 4
-
- 1 Word length (10=7 bit, 11=8 bit)
- 2 Stopbits (0=1, 1=2)
- 3 Parity (00=none, gth (10=7 bit, 11=8 bit)
- 2 Stopbits (0=1, 1=2)
- 3 Parity (00=none, 01=odd, 11=even)
- 4 Baud (000=110, 001=150, 010=300, 011=600,
- 100=1200, 101=2400, 110=4800, 111=9600)
-
- AH Set as in status (call 3)
- --- 1 Send Character to 100=1200, 101=2400, 110=4800, 111=9600)
-
- AH Set as in status (call 3)
- --- 1 Send Character to Communications Line
- DX Interface card (0=COM1:, 1=COM2:)
- AL Character to send
- AH Set as in status (call 3)
- --- 2 Recieve Character from Communications Line
- DX Interface card 0=COM1:, 1=COM2:)
- AL Character
- AH 0 if no error, set as sttus if nonzero
- --- 3 Get Communications Status
- DX Interface card (0=COM1:, 1=COM2:)
- AH Line status : Bits set as follows
- 80 Time out
- 40 Transmit shift reg empty
- 20 Transmit holding reg empty
- 10 Break detect
- 08 Framing error
- 04 Parity error
- 02 Overrun error
- 01 Data ready
-
- AL Modem status : Bits set as follows
- 80 Recieved line signal detect
- 0 Ring indicator
- 20 Data set ready
- 10 Clear to send
- 08 Delta recieved line signal detect
- 04 Trailing edge ring detector
- 02 Delta data set ready
- 01 Delta clear to send
-
- 15 ----------- Cassette I/O ----( Obsolete )------------------------------
- ^L
- +--------------------------------------------------------------------------+
- | I B M P C B I O S I n t e r f a c e R o u t i n e s |
- +--------------------------------------------------------------------------+
- Intr Func In Out Comments
- # (AH) Regs Regs
-
- 16 ----------- Keyboard I/O -----------------------------------------------
- --- 0 Read Next Character
- AL Caracter struck
- AH Scan code of key
- --- 1 Check Typeahead Status
- ZF 1 if no key available, 0 if key available
- AL,AH Character/Scan code if availabl. Keystroke
- remains in buffer.
- --- 2 Get Current Shift Status
- AL Shift flag status : Bits set as follows
- 80 Insert state
- 40 Caps lock state
- 20 Num lock state
- 10 Scroll lock state
- 08 Alt shift is depressed
- 04 Ctl shift is depressed
- 02 Left shift is depressed
- 01 Right shift is depressed
-
- 17 ----------- Printer I/O ------------------------------------------------
- --- 0 Print Character
- DX Printer to be used (0,1,2)
- AL Character to print
- AH Status set as in call 2
- -- 1 Initialize Printer Port
- DX Printer to be used (0,1,2)
- AH Status set as in call 2
- --- 2 Get Printer Status
- DX Printer to be used (0,1,2) AH Printer status : Bits set as follows
- 80 Not buy (ready?)
- 40 Acknowledge
- 20 Out of paper
- 10 Selected
- 08 I/O error
- 01